﻿//#include <iostream>
//using namespace std;
//void Printf(struct STU s);
//struct STU
//{
//    char name[20];//字符串
//    int year;
//    float score;
//};
//
//int main()
//{
//    struct STU s1 = { "zhangsan",20,30.5f};
//    struct STU s2 = { "lisi",19,39.8f };
//    Printf(s1);
//    Printf(s2);
//    return 0;
//}
//void Printf(struct STU s)
//{
//    cout << s.name <<" "<< s.year<<" " << s.score << endl;
//}
////传值调用
//#include <iostream>
//using namespace std;
//void Printf(struct STU s);
//void Printf1(struct SPC s);
//struct STU
//{
//    char name[20];//字符串
//    int year;
//    float score;
//};
//struct SPC
//{
//    double sum;
//    struct STU s2;
//};
//int main()
//{
//    struct STU s1 = { "zhangsan",20,30.5f };
//    struct STU s2 = { "lisi",19,39.8f };
//    Printf(s1);
//    Printf(s2);
//    struct SPC s3 = { 200.5,{"yuling",19,34.5} };
//    Printf1(s3);
//    return 0;
//}
//void Printf(struct STU s)
//{
//    cout << s.name << " " << s.year << " " << s.score << endl;
//}
//void Printf1(struct SPC s)
//{
//    cout << s.s2.name << " " << s.s2.year << " "<<s.s2.score << endl;
//}
//传址调用
//#include <iostream>
//using namespace std;
//void Printf(struct STU *s);
//void Printf1(struct SPC *s);
//struct STU
//{
//    char name[20];//字符串
//    int year;
//    float score;
//};
//struct SPC
//{
//    double sum;
//    struct STU s2;第一个
//};
//int main()
//{
//    struct STU s1 = { "zhangsan",20,30.5f };
//    struct STU s2 = { "lisi",19,39.8f };
//    Printf(&s1); 
//    Printf(&s2);
//    struct SPC s3 = { 200.5,{"yuling",19,34.5} };
//    Printf1(&s3);
//    return 0;
//}
//void Printf(struct STU* s)
//{
//    cout << (*s).name << " " << (*s).year << " " << (*s).score << endl;
//   简便写法，指针指向要调用的 cout << s->name << " " << s->year << " " << s->score << endl;
//}
//void Printf1(struct SPC* s)
//{
//    cout << (*s).s2.name << " " << (*s).s2.year << " " << (*s).s2.score << endl;
//    cout << s->s2.name << " " << s->s2.year << " " << s->s2.score << endl;
//}
//#include <iostream>
//using namespace std;
//void swap(int *a,int *b)
//{
//	int t = *a;
//	*a = *b;
//	*b = t;
//}
//int main()
//{
//	int a, b, c;
//	cin >> a >> b >> c;
//	if (a < b)
//	{
//		swap(&a,& b);
//	}
//	else if (a < c)
//	{
//		swap(&a,& c);
//	}
//	else if (b < c)
//	{
//		swap(&b,& c);
//	}
//	cout <<a << b << c;
//	return 0;
//}
//#include <iostream>
//#include <string>
//#include <algorithm> // 包含 reverse 所需头文件
//using namespace std;
//
//string change(int x, int k) {
//    string ans = "";
//    while (x != 0) {
//        int t = x % k;
//        if (t <= 9) {
//            ans = ans + (char)('0' + t);
//        }
//        else {
//            ans = ans + (char)('A' + t - 10);
//        }
//        x /= k;
//    }
//    reverse(ans.begin(), ans.end());
//    return ans;
//}
#include <iostream>
#include <string>
#include <algorithm> // 包含 reverse 所需头文件
using namespace std;
//int main() {
//    int num = 20;
//    int base = 16;
//    string result = change(num, base);
//    cout << num << " 转换为 " << base << " 进制是：" << result << endl;
//    return 0;
//}
string change(int n, int k);
//int main()
//{
//    int k;
//char arr[10];
//    cin >> arr>>k;
//   int d= change(k,arr);
//   cout <<d;
//   return 0;
//}
//int CAL(char ch)
//{
//    if (ch >= 'A')
//    {
//        return ch + 10 - 'A';
//    }
//    else
//    {
//        return ch - '0';
//    }
//}
//int change(int k, string arr)
//{
//    int ans = 0;
//    for (int i = 0; i < arr.size(); i++)
////    {
////        ans = ans*k + CAL(arr[i]);
////    }
////    return ans;
////}
int main()
{
    int n=0, k=0;
    cin >>n>> k;
   string result=change(n, k);
   cout << result;
   return 0;
}
string change(int n, int k)
{
    int t;
    string ans = "";//转成字符串
    while (n != 0)
    {
        t = n % k;
        if (t<=9)
        {
            ans = ans + (char)(t + '0');
        }
        else
        {
            ans = ans + (char)(t -10 + 'A');
        }    n = n / k;
    }

   reverse(ans.begin(), ans.end());
   return ans;
}
//#include <string>
//#include <algorithm> // 包含 reverse 所需头文件
//using namespace std;
//
//string change(int x, int k) {
//    string ans = "";
//    while (x != 0) {
//        int t = x % k;
//        if (t <= 9) {
//            ans = ans + (char)('0' + t);
//        } else {
//            ans = ans + (char)('A' + t - 10);
//        }
//        x /= k;
//    }
//    reverse(ans.begin(), ans.end());
//    return ans;
//}
//
//int main() {
//    int num = 20;
//    int base = 16;
//    string result = change(num, base);
//    cout << num << " 转换为 " << base << " 进制是：" << result << endl;
//    return 0;
//}
